% 直方图匹配（规定化）回调函数
function histogramMatching(fig)
    data = guidata(fig);
    img = data.img;
    if isempty(img)
        msgbox('请先加载图像');
    else
        % 目标图像或目标直方图需要准备好
        [filename, pathname] = uigetfile({'*.jpg;*.png;*.bmp', '目标图像'}, '选择目标图像');
        if filename ~= 0
            targetImg = imread(fullfile(pathname, filename));
            if size(targetImg, 3) == 3
                targetImg = rgb2gray(targetImg); % 如果目标图像是彩色图，转换为灰度图
            end
            
            % 进行直方图匹配
            matchedImg = imhistmatch(img, targetImg);
            % 显示匹配后的图像
            imshow(matchedImg, 'Parent', data.ax);
            data.img = matchedImg;
            guidata(fig, data); % 更新存储数据
        else
            msgbox('未选择目标图像');
        end
    end
end
